<?php
/**
 * @name Classe PedidoRN
 *
 * @author  Pedro Schneider (correaschneider@gmail.com)
 *
 *
 */
class PedidoRN 
{

	/**
	 * Declara a AD Referente
	 *
	 * @var PedidoAD
	 */
	private $PedidoAD;

	function __construct()
	{
		$this->PedidoAD = new PedidoAD();
	}

	/**
	 * @method Pesquisar
	 *
	 * @param object $Pedido
	 * @param string $ordenacao
	 * @param integer $limite
	 * @param integer $pagina
	 * @param string $complemento
	 *
	 * @return  array
	 */
	public function Pesquisar($Pedido = NULL, $ordenacao = NULL, $limite = NULL, $pagina = 1,$complemento = null)
	{
		$Idioma = RetornarIdioma();

		$Pedido->Ativo													 = ATIVO;

		$colecaoPedido = $this->PedidoAD->Pesquisar($Pedido, $ordenacao, $limite, $pagina, $complemento);

		return $colecaoPedido;
	}

	/**
	 * @method Obter
	 *
	 * @param object $Pedido
	 * @param boolean $tipoPesquisa
	 * @param string $ordenacao
	 * @param string $complemento
	 *
	 * @return  object
	 */
	public function Obter($Pedido, $ordenacao = NULL, $complemento = NULL)
	{
		$Idioma = RetornarIdioma();

		$Pedido->Ativo													 = ATIVO;

		$retornoPedido = $this->PedidoAD->Obter($Pedido, $ordenacao, $complemento);

		/**
		 * pedidodetalhe
		 */
		if($Pedido->Colecaopedidodetalhe->Pesquisar === TRUE)
		{
			$pedidodetalheRN												 = new pedidodetalheRN();
			$pedidodetalhe													 = new stdClass();
			$pedidodetalhe->PedidoID										 = $retornoPedido->PedidoID;
			$retornoPedido->Colecaopedidodetalhe							 = $pedidodetalheRN->Pesquisar($pedidodetalhe);
		}


		return $retornoPedido;
	}

	/**
	 * @method Existir
	 *
	 * @param object $Pedido
	 * @param boolean $ordenacao
	 * @param boolean $complemento
	 *
	 * @return  boolean
	 */
	public function Existir($Pedido, $ordenacao = NULL, $complemento = NULL)
	{
		$Idioma = RetornarIdioma();

		$Pedido->Ativo													 = ATIVO;

		$retorno = $this->PedidoAD->Existir($Pedido, $ordenacao, $complemento);

		return $retorno;
	}

	/**
	 * @method Excluir
	 *
	 * @param object $Pedido
	 *
	 * @return  boolean
	 */
	public function Excluir($Pedido)
	{
		/**
		 * pedidodetalhe
		 */
		$pedidodetalheRN = new pedidodetalheRN();
		$pedidodetalhe->PedidoID = $Pedido->PedidoID;

		$pedidodetalheRN->Excluir($pedidodetalhe);

		$retorno = $this->PedidoAD->Excluir($Pedido);

		return $retorno;
	}

	/**
	 * @method ContarRegistros
	 *
	 * @param object $Pedido
	 * @param string $ordenacao
	 * @param object $complemento
	 *
	 * @return  integer
	 */
	public function ContarRegistros($Pedido, $ordenacao = NULL, $complemento = NULL)
	{
		$Idioma = RetornarIdioma();

		$Pedido->Ativo													 = ATIVO;

		$retorno = $this->PedidoAD->ContarRegistros($Pedido, $ordenacao, $complemento);

		return $retorno;
	}

	/**
	 * @method Salvar
	 *
	 * @param object $Pedido
	 *
	 * @return  object
	 */
	public function Salvar($Pedido)
	{
		$retornoPedido = $this->PedidoAD->Salvar($Pedido);

		/**
		 * pedidodetalhe
		 */
		if(count($Pedido->Colecaopedidodetalhe) > 0)
		{
			$pedidodetalheRN = new pedidodetalheRN();
			foreach ($Pedido->Colecaopedidodetalhe as $pedidodetalhe)
			{
				$pedidodetalhe = new stdClass();
				$pedidodetalhe->PedidoID = $retornoPedido->PedidoID;
				$pedidodetalhe = $pedidodetalheRN->Salvar($pedidodetalhe);

				$retornoPedido->Colecaopedidodetalhe[] = $pedidodetalhe;
			}
		}

		return $retornoPedido;
	}
}
?>